f1c95fe5dd657332f8383fd3ea62729d9e78fcd5,engine/src/test/java/org/camunda/bpm/engine/test/api/runtime/migration/MigrationBoundaryEventsParameterizedTest.java,MigrationBoundaryEventsParameterizedTest,testMigrateBoundaryEventOnConcurrentUserTaskAndTriggerEvent,#,474
Before Change
@Test
public void testMigrateBoundaryEventOnConcurrentUserTaskAndTriggerEvent() {
// given
BpmnEventTrigger bpmnEventTrigger = configuration.addBoundaryEvent(ProcessModels.PARALLEL_GATEWAY_PROCESS, USER_TASK_1_ID);
BpmnModelInstance sourceProcess = bpmnEventTrigger.getProcessModel();
BpmnModelInstance targetProcess = modify(sourceProcess).changeElementId(BOUNDARY_ID, NEW_BOUNDARY_ID);
ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(sourceProcess);
ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(targetProcess);
Map<String, String> activities = new HashMap<String, String>();
activities.put(USER_TASK_1_ID, USER_TASK_1_ID);
activities.put(BOUNDARY_ID, NEW_BOUNDARY_ID);
activities.put(USER_TASK_2_ID, USER_TASK_2_ID);
MigrationPlan migrationPlan = configuration.createMigrationPlanBuilder(rule, sourceProcessDefinition.getId(),
targetProcessDefinition.getId(), activities).build();
// when
testHelper.createProcessInstanceAndMigrate(migrationPlan);
// then it is possible to trigger the event and successfully complete the migrated instance
bpmnEventTrigger.trigger(testHelper);
testHelper.completeTask(AFTER_BOUNDARY_TASK);
testHelper.completeTask(USER_TASK_2_ID);
testHelper.assertProcessEnded(testHelper.snapshotBeforeMigration.getProcessInstanceId());
After Change
@Test
public void testMigrateBoundaryEventOnConcurrentUserTaskAndTriggerEvent() {
// given
BpmnModelInstance sourceProcess = ProcessModels.PARALLEL_GATEWAY_PROCESS.clone();
MigratingBpmnEventTrigger eventTrigger = eventFactory.addBoundaryEvent(
rule.getProcessEngine(),
sourceProcess,
USER_TASK_1_ID,
BOUNDARY_ID);
ModifiableBpmnModelInstance.wrap(sourceProcess).flowNodeBuilder(BOUNDARY_ID)
.userTask(AFTER_BOUNDARY_TASK)
.endEvent()
.done();
BpmnModelInstance targetProcess = modify(sourceProcess)
.changeElementId("boundary", "newBoundary");
ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(sourceProcess);
ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(targetProcess);
MigrationPlan migrationPlan = rule.getRuntimeService().createMigrationPlan(sourceProcessDefinition.getId(), targetProcessDefinition.getId())
.mapActivities(USER_TASK_1_ID, USER_TASK_1_ID)
.mapActivities(USER_TASK_2_ID, USER_TASK_2_ID)
.mapActivities(BOUNDARY_ID, NEW_BOUNDARY_ID).updateEventTrigger()
.build();
// when
ProcessInstance processInstance = testHelper.createProcessInstanceAndMigrate(migrationPlan);
// then it is possible to trigger the event and successfully complete the migrated instance
eventTrigger.inContextOf(NEW_BOUNDARY_ID).trigger(processInstance.getId());
testHelper.completeTask(AFTER_BOUNDARY_TASK);
testHelper.completeTask(USER_TASK_2_ID);
testHelper.assertProcessEnded(testHelper.snapshotBeforeMigration.getProcessInstanceId());